package controller;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.List;

import model.Usuario;
import sun.misc.UUDecoder;

public class UsuarioDAO {

    private Connection con;
    private java.sql.PreparedStatement stmtInserir;
    private PreparedStatement stmtListar;
    
    public UsuarioDAO() throws Exception{
        con = ConnectionFactory.getConnection();
      }
    
    public UsuarioDAO(Connection con) throws Exception{
        this.con = con;
    }
    
    public void inserir(Usuario usuario) throws SQLException{
        stmtInserir = con.prepareStatement("INSERT INTO usuario(nome, matricula, tipo, email, login, senha) VALUES (?, ?, ?, ?, ?, ?);");
  
        stmtInserir.setString(1, usuario.getNome());
        stmtInserir.setInt(2, usuario.getMatricula());
        stmtInserir.setInt(3, usuario.getTipo());
        stmtInserir.setString(4, usuario.getEmail());
        stmtInserir.setString(5, usuario.getLogin());
        stmtInserir.setString(6, usuario.getSenha());
        stmtInserir.executeUpdate();
    }
    
    public List<Usuario> listar() throws SQLException, ParseException{
        stmtListar = con.prepareStatement("SELECT * FROM usuario");
        ResultSet rs = stmtListar.executeQuery();
        List<Usuario> lista = new ArrayList();
        
        while(rs.next()){
            Usuario usuario = new Usuario();
            
            usuario.setUsuId(rs.getInt("usuId"));
            usuario.setNome(rs.getString("nome"));
            usuario.setMatricula(rs.getInt("matricula"));
            usuario.setTipo(rs.getInt("tipo"));
            usuario.setEmail(rs.getString("email"));
            usuario.setLogin(rs.getString("login"));
            usuario.setSenha(rs.getString("senha"));
            
            lista.add(usuario);
            }
            return lista;
        }
                
    }
    
